package br.com.dsa.sistemasalon.empresa;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;


public class EmpresaDAOHibernate implements EmpresaDAO {
	
	Session sessao;	
	
	public Session getSessao() {
		return sessao;
	}
	
	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	@Override
	public void salvar(Empresa empresa) {
		this.sessao.save(empresa);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Empresa> listar() {
		Criteria listaEmpresas = sessao.createCriteria(Empresa.class);
		return  listaEmpresas.list();
	}

	@Override
	public void excluir(Empresa empresa) {
		this.sessao.delete(empresa);		
	}

	@Override
	public void alterar(Empresa empresa) {
		this.sessao.update(empresa);		
	}

	@Override
	public Empresa bucarNome(String nome) {
		Query consultaNomeEmpresa = this.sessao.createQuery("from Empresa e where e.nomeFantasia like :nomeFantasia");
		consultaNomeEmpresa.setString("nomeFantasia", "%" + nome + "%");
		return (Empresa) consultaNomeEmpresa.uniqueResult();
	}
	
	@Override
	public Empresa buscarcodigo(Integer codEmpresa) {
		return (Empresa) this.sessao.get(Empresa.class, codEmpresa);
	}

	
}
